#ifndef __ANGLE_SENSOR_H
#define __ANGLE_SENSOR_H

#include "main.h"
#include "adc.h"
#include <stdbool.h>

#define ADC_BUF_LEN         32U         // DMA一次搬运32个样点
#define VDDA                3.30f       // 参考电压
#define ELEC_END    345.0f          // 电气有效终点
#define DEAD_BAND   2.0f            // 提前2°就报死区
#define VOLTAGE_TO_ANGLE_SLOPE  (345.0f / VDDA) // 3.3 V = 360°


static uint16_t        adcBuf[ADC_BUF_LEN];
static volatile bool   adcConvDone = false;
extern float    angle_f;         // 最终角度，单位°

void angle_sensor_init(void);
static float iir_filter(float in, float *mem, float alpha);
#endif
